{\rtf1\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\nowidctlpar\qc\b\f0\fs28 Paranoia Changelog\par
\pard\nowidctlpar\fs20 Original Paranoia addon by rmet0815.\par
v1.0 - \b0 initial release\par
\par
\b v1.01\b0  - updated to WoW Client version 1.10\par
\par
\b v1.02\b0  - updated to WoW client version 1.11\par
\par
\b v1.03 \b0 - updated to WoW client\par
-added switch to disable in battlefields\par
\b\par
Addon picked up by Lifetapt.\par
v1.04 (April 7, 2008) \b0 - Fan update by Lifetapt to work with the new WoW patch 2.4 combat log system.\par
-made addon compatible with patch 2.4 combat log\par
-added option to disable in sanctuary zones\par
-added option to enable or disable warning sound\par
-fixed issue where config window wouldn't load savedvariables properly\par
-fixed issue where sound would play even if paranoia was disabled\par
-extended slash command functionality\par
-changed warning sound =P the old one is still there, if you want it back just replace ganker.wav with oldganker.wav.\par
\par
\b v1.05 (April 10, 2008) \b0 - Minor update.\par
-fixed issue that occurred when an enemy druid summoned Treants\par
\par
\b v1.06 (April 13, 2008) \b0 - Major update.\par
-added an enemy player popup alert feature. Now, when an enemy player is detected, a popup message displaying "Hostile player detected! (Playername)" will appear and fade out. You can configure the display duration, fadeout duration, and the location of the alert popup in the Paranoia Alert Popup configuration frame.\par
-added an option to disable the Paranoia enemy list, while leaving the addon still running. This way you can just use the sound and/or alert popup if you don't want the Paranoia enemy list.\par
-added a slider for the enemy list's border opacity.\par
-added a slider for the enemy list's panel opacity.\par
-added an option to disable in Free-For-All zones (Dire Maul Arena, Nagrand Arena, Gurubashi Arena etc.)\par
-added an option to lock the Paranoia enemy list so that you don't accidentally move it. While locked, the enemy list will not receive mouse clicks, so you will have to open the options window by /paranoia config or by Options -> Interface -> Addons -> Paranoia.\par
-integrated Paranoia options with the new 2.4 Blizzard Interface frame. You can now access Paranoia's config by hitting Escape, clicking Interface, clicking the Addons tab and choosing Paranoia. There are two subcategories.\par
-set Paranoia_Frame_Main's frameStrata to background, it should now not intercept mouse clicks when the bag or any other frames are in front of it. \par
-added some more slash commands used mainly for debugging. See /paranoia debuglist for a listing of these commands.\par
-fixed a bug where if the hostile unit was targeted, Paranoia wouldn't detect its combat log event (since the unitflag of a targeted hostile is 0x00010548 and Paranoia was checking for 0x00000548. If anyone knows how to check just the last three digits of of a unitflag, please let me know!\par
-other miscellaneous fixes/additions\par
\par
\b v1.07 (April 17, 2008) \b0 - Minor update.\par
-Removed duplicate unnecessary code from the zone changed event in OnEvent. This fixes the bug where the Paranoia frame would re-fadein even if it was already visible and vice versa.\par
-Sorted out the disable-in-bgs/arena coding. Previously it only worked occasionally, I had never really changed it from the original code and I hadn't really tested the addon in a BG. It should now work properly, hiding Paranoia and not playing the warning sound anytime it is disabled. \par
-Fixed the disable-in-FFA code, which worked in the same way as the BG code and presumably had the same problem. It was broken anyway because it was checking for a boolean value and the API function was returning a 1 or nil so it simply didn't have any effect.\par
-After "fixing" the BG code, I've realized the reason why it's not always correctly detecting a BG: If you join a queue for two or more BGs and join the first one that pops up, when the next one pops (presumably while you're playing in the BG) it bugs the GetBattlefieldInstanceRunTime() api function, and it will always return zero. Paranoia then cannot determine if you are in a BG or not, so I'll show up anyway. I'm looking for a way around this, but in the meantime please use /paranoia disable if it's not cooperating. Arenas should work fine (though I haven't tested them at all), however please note that Paranoia will not hide itself in an arena until the prematch countdown reaches zero and the arena starts.\par
\par
\b v1.08 (April 29, 2008) \b0 - Major update.\par
-Added click-targeting. You can now click on a player's name in the enemy list to target them. This feature only works while not in combat mode. Please note that if you click on a unit's name and nothing happens (assuming you are out of combat) then the unit is probably out of targeting range, as the combat log will sometimes report units not in range. Of course, they could just be stealthed. IMPORTANT: If the Paranoia window is locked, then it cannot receive mouse clicks and this feature will not work.\par
-Added inactivity fading. Now, units on the enemy list will gradually fade out if no activity has been detected from that unit. The more faded a unit's name appears, the longer it has been since that unit was last detected doing something. You can disable this feature in the new Paranoia Appearance options tab.\par
-Added class coloring. Units in the enemy player list will now have colored names based on their class. Paranoia will only color a unit's name if it knows the unit's class. If the class is unknown, Paranoia will color the name gray. You can disable this feature in the new Paranoia Appearance options tab.\par
-Added class-detecting and level-guessing support. Paranoia will now check the spell/skill name of all enemy combat log events and use that to determine the player's class and minimum level. For example, if Paranoia detects an enemy using the skill Ice Lance it will guess that the enemy is a level 66+ Mage. Paranoia cannot detect an enemy's class if they only use melee swings or if it detects environmental damage. The class guess can sometimes be wrong when it detects buffs or debuffs (for example, if the slowing effect of Frostbolt fades from a Warrior, the Warrior will be incorrectly detected as a Mage). However, it will attempt to determine the correct class by looking at the spells the unit is using (if the incorrectly detected Warrior-turned-Mage uses Heroic Strike they will be detected as a Warrior and will stay that way).\par
-Added support for up to ten enemy units.\par
-Re-enabled enemy list autoresizing. This was already in the code but had been disabled by the previous author. Paranoia will now resize its enemy list based on how many hostiles it detects. If there are no nearby players, Paranoia will display "No [opposite faction] players detected."\par
-Added a /paranoia gc debug command. This command will force a garbage collection.\par
-Added ParanoiaSpells.lua, this is how Paranoia guesses classes and levels. Since this file has a list of most spells it is 42kb in size and boosts Paranoia's memory usage by about that much.\par
-Removed level difference display. Paranoia won't show the level difference between you and your target anymore and will instead just show the level. If the level was guessed by Paranoia or if the player has a skull level then Paranoia will display the guessed level and a plus sign (eg. if you are 37 and the enemy is a skull Paranoia will display 47+, or if Paranoia detects Death Coil then it will display 42+, which is the minimum level for Death Coil.) A "?" indicates an unknown level, as before.\par
-Moved Border/Frame opacity to the new Paranoia Appearance options tab.\par
-Created a new Paranoia Appearance tab in interface options.\par
-Changed functions from being globals to being located in the Paranoia: namespace.\par
-Reduced download size by removing ganker.wav from the Paranoia directory. Since the warning sound Paranoia uses (PVPWarningAlliance.wav) is a built-in sound the addon now just grabs the sound from the WoW data file instead of relying on an external file.\par
-Changed the enemy alert popup text from "Hostile player detected!" to "[Opposite Faction] player detected!".\par
-Split the Disable in BGs/Arena option, now there are two options: Disable in BGs and Disable in Arena.\par
-The BG detection still suffers from the GetBattlefieldInstanceRunTime() bug, I cannot find a way of getting around that that doesn't involve running a For loop every OnUpdate() which I imagine uses significantly more CPU than just calling an API function. I tried for about two hours to code a workaround but I ended up with code so messy and broken that I just reverted to the old 1.07 code.\par
\par
\b v1.09 (May 5, 2008)\b0  - Major update.\par
-Added basic hostile player announcing functionality. When you right click on a player in the enemy list, you can choose a chat channel to announce them to, including /say, /yell, /party, /guild, /raid, /battleground, and /localdefense (chat channels will be added and removed from the list dynamically according to which channels you have access to). The announcement will include the player's name, level (if known), class (if known), and last seen coords and subzone. The last seen coordinates and zone will be wherever you were standing when Paranoia last detected the player, since there is no real way to get the coordinates of another unit. Will add things like message customization, custom channels, and possibly autoannouncing soon.\par
-Moved the inactivity fading checkbox to the Paranoia Appearance tab from the Paranoia General.\par
-Added sliders to modify the enemy list timeout (how long Paranoia keeps an enemy in the list) and warning timeout (minimum amount of time between alert popup/alert sound) to the Paranoia General\par
-Increased the maximum number of enemies the enemy list can hold to 15.\par
-Added a slider to change the maximum number of enemies the list will display.\par
-Added value display to the sliders in the options frame, so you don't have to guesstimate what the value is currently set to.\par
-Added some Ace2 libraries to the addon, however, I'm not really using any features of Ace2 at the moment and really only need AceAddon, \par
AceOO and AceLibrary to use Dewdrop. I've also thrown AceLocale in there since I'm probably going to add localization support very soon (despite what I said about it being last on the ToDo list) and AceDB as I'm planning to add an enemy player database where Paranoia will store enemies it has previously seen to the addon in the near future.\par
-Fixed the "Interface action failed because of an AddOn" message. Paranoia was causing taint because of it trying to resize itself and update the hostile list while in combat, which is apparently something that cannot be done. While in combat, Paranoia will not visually update the enemy list, but behind the scenes, Paranoia is still detecting and tracking enemies and will still be able to alert you with the warning sound and popup message. However, the enemy list itself will not update until you leave combat mode. This may be slightly misleading, since Paranoia might display "No alliance detected." even if there is an enemy standing in front of you attacking you. Paranoia will still taint if you try to alter settings while in combat mode, will get to that later.\par
-Made quite a few modifications to the detection code, I was able to test it in a controlled environment with an Alliance friend of mine and fixed several problems with detection, guessing accuracy, and display. Paranoia should now guess classes and levels more often and more accurately, and when guessing levels should work much more smoothly (previously, the first guessed level would not change until the hostile was targeted, now the guessed level will get progressively higher as the enemy uses higher leveled skills). Also, Paranoia will be able to detect two enemies at once, for example, if an enemy priest heals another enemy, Paranoia will detect the Priest (and flag them as a Priest) and the other enemy (flagged as unknown). \par
\par
\b v1.10 (May 11, 2008)\b0  - Major update.\b\par
\b0 -ADDED LOCALIZATION SUPPORT! WOOT! Paranoia now supports multiple localizations, however, there are no translations yet so there isn't a noticeable change to those of you using non-english clients. If you know English and another language, and would like to translate, PLEASE feel free to do so! You can send a translated localization file to lifetapt [at] gmail [dot] com. If I don't get translations, I'll go ahead and BabelFish the localization file, but it's going to be pretty ugly so I'm going to hold out for human-translation for at least a week or two. Also I'm interested in how Paranoia will handle accented characters and script, SciTE doesn't seem to want to display them when I copy-paste so we might have a problem with that.\par
-Added mouseover detection. Paranoia will now add targets you move your mouse over to the enemy list with class and level data known. You can mouseover a clump of enemies to quickly add or update all of them. Also, mouseover counts as "activity" so you can keep units from fading out by mousing over them.\par
-Added target detection. If you target a unit that has not done anything to trigger Paranoia's combat log detection, Paranoia will add them to the list. Targeting counts as "activity" so you can keep units from fading out by targeting them.\par
-Added an ignore feature. You can right click on a hostile in the enemy list and hit ignore for this session and they will not trigger Paranoia until you logout, reload the UI, or after three hours. This is useful for quickly getting rid of units that are triggering Paranoia from different zones, at least until Blizzard fixes that bug.\par
-Added a Paranoia Announce options tab. You can now change the announce message. Read the instructions on the actual tab to learn how to create a custom message.\par
-Changed the enemy list to show the complete class name instead of the first three letters.\par
-Added dynamic resizing of the enemy list's width. The enemy list will now resize to fit the longest line of text inside it.\par
-Added enemy list scaling to the Paranoia Appearance tab. You can now set the scaled size of the Paranoia enemy list to make it smaller or larger, independent of your regular UI scale.\par
-Changed some default values in the XML file, I had previously set them to zero in 1.09 but that apparently caused problems with savedvariables loading so they're now back the way they were.\par
-Changed the default position of WarnFrame, it's now anchored to TOPLEFT with a 100, -100 offset.\par
-Changed a couple incorrectly defined global variables to locals.\par
-Changed the default announce message.\par
-Fixed a problem with the Lock Paranoia Window option, I had not modified that option to work with the ten extra buttons I've recently added so even with that option checked the last 10 buttons did not allow clickthrough. \par
-Fixed a fairly large bug where empty buttons still intercepted mouse clicks i.e. if there are five visible enemies, then the space underneath the Paranoia window (where the next 10 hidden buttons are) will still receive mouse clicks. Buttons are now hidden instead of just set to have no text.\par
-Added significantly more commenting to the code, mostly for my benefit but also for anyone looking through it.\par
-Fixed a bug where if Paranoia's sound was disabled the warning message would not appear.\par
-Fixed a bug in detection that was causing Paranoia not to trigger in certain situations.\par
-Paranoia now only looks for the last three bits of a unitflag, so it will now catch all hostile players regardless of whether or not they're targeted, focused, targeted and focused, etc.\par
-Other miscellaneous fixes and changes.\par
\par
\b v1.10b (May 18, 2008)\b0  \endash  Localization update/bugfix.\par
-Includes French localization, thanks to Minihunt EU@Ner'zhul. The spell list is not included, so class guessing will not work. However, I plan on converting the spell list to use spellID's instead of names soon so other languages will be able to have class detection. There is some overflow in some of the configuration frame texts, I am aware of it and I'm looking for a workaround. I really need people with frFR clients to test the new localization out and see if you have any problems. Like I said, everything but class guessing should work.\par
-Fixed a couple strings that were hard-coded in English and were not being localized.\par
-Fixed a major bug where Paranoia was detecting friendly players, sorry for the huge delay it took me to fix this =/\par
\par
\b v1.11 (April 2008-September 11, 2008)\b0  - Major update.\par
Sorry this took so long. Thanks to everyone who submitted localizations, I appreciate it, even if I had to omit some (I just got so many of them... I couldn't use all of them :P)\i\par
Please note that this list only contains major changes. Since this was a rather large update, minor modifications to code may not be documented here. You can see all changes via the PEPA FishEye log at WoWAce.com.\par
\i0 -Added a German localization translated by rom and AmmokK.\par
-Added a Spanish localization translated by Miros.\par
-Added a Simplified Chinese localization translated by www.WoWUI.cn.\par
-Added an updated French localization by Minihunt, which fixes/shortens some strings. I have also had to machine translate the strings for the Paranoia Communication tab and the new Alert Popup settings, so excuse the poor grammar for those tabs.\par
-Added a Russian localization translated by Swix.\par
-Added the addon to WoWAce.com wiki, the SVN, and the WoWAceUpdater. You can now download beta versions of Paranoia via the WoWAce wiki page for Paranoia. (click betas in the box on the right of the page)\par
-Added basic communication support. Paranoia will now communicate with players in your guild or party who are also using Paranoia, and will share detection data with them. For example, if you are in a group with someone else who is using Paranoia, and they are attacked by a hostile player, Paranoia will alert you and the popup text will display \rdblquote  Friendlyplayer (party) detected a hostile Rogue! (Allirogue, 54,90)\rdblquote . If there is a guild member (in your zone) who is using Paranoia, you will be alerted in a similar manner. Communication is done using ChatThrottleLib to avoid disconnects. You can modify settings for the new communication feature using the new Paranoia Communication tab in the Interface Options menu.\par
-Added a Paranoia Communication options tab. You can choose to disable communication, only receive warnings from party members, only receive warnings from nearby guild members, or receive warnings from both.\par
-Added a new command, /paranoia ping [party|guild|player] [playername]. This command will allow you to find out if anyone in your party or guild, or if any specific player, is using Paranoia with communication enabled. The command is currently in the debug command list because there are no translations for the responses.\par
-Added a minimap button. The minimap button allows you to quickly enable or disable Paranoia by left clicking, or open the options window by right clicking. The minimap button can be hidden in the Paranoia Appearance options tab.\par
-Added a slider to change the alpha level of the Alert Popup text. You can find this setting in the Paranoia Alert Popup tab.\par
-Added enemy player data storage. Paranoia will now store class/level data for all hostiles it detects (excluding arenas, battlegrounds, free-for-all zones and duels). This data will be used in a future version when a KoS list/hostile player browser is added, and it will also be used to remember an enemy\rquote s level and class the next time you see them.\par
-Started work on the player database/kill-on-sight system. It is not done yet, but as mentioned above Paranoia will begin storing data for future use in this version.\par
-Paranoia will now disable itself when you enter an instance, since there is no reason to have it enabled.\par
-Completely rewrote the spell list. It now includes all nearly all spells/skills for every class, including spells with the same name but multiple ranks. This means that Paranoia's level guessing will now be much more accurate, since it will now know the difference between something like a Rank 1 Sinister Strike (detected as a level 1+ Rogue) and a Rank 10 Sinister Strike (detected as a level 70 Rogue). It also now uses spell IDs instead of spell names, meaning it will work with any localization. The downside to all of this is the size of the spell list (and thus it's memory usage), which was initially 42kb, and is now around 78kb. However, the increased guessing accuracy (it will pretty much be spot on unless a player is deliberately using lower ranked skills) and the compatibility with all localizations should be worth it.\par
-Fixed the cancel button in the options frame, it will now reverse changes when clicked.\par
-Paranoia will now load the spell list only when it is needed, and will unload it after 3 minutes of no enemy activity to reduce memory usage.\par
-Made attempts throughout the addon to improve speed, efficiency, and memory usage. Unfortunately, before learning Lua, I primarily programmed in VB6/VB.NET, where I practically never worried/cared about performance and memory usage. As a result, I don\rquote t know too much about writing efficient code so there are probably many more changes that can be made. I would really appreciate any help by a Lua coder who knows what they\rquote re doing. :P  Note for myself: warnHostilePlayer sucks and needs to be completely redone.\par
-Changed the internal name of the addon from ParanoiaRevived to Paranoia_EPA. All settings, including the custom announce, will be reset to default. Better this happens now than later when people have started building up enemy databases.\par
-Rewrote the entire function that deals with hiding and showing Paranoia. Previously it was ugly and inefficient since it was originally designed to only hide/show Paranoia in BGs, but since adding sanctuaries, arenas, and free-for-all areas, I just kept adding unnecessary code to make it work with more than one location. It is now smaller, simpler, and perhaps a little bit faster since it involves fewer nested if/then statements. It\rquote s also nicer to look at and easier to understand\'85 it\rquote s a bad sign when you don\rquote t know what\rquote s going on in code you wrote yourself.\par
-Changed the color of Paranoia's chat text to make it a little more readable.\par
-Fixed the /paranoia memory command (now /paranoia mem), it was not updating memory usage correctly.\par
-Removed click-through when the Paranoia frame is locked. Ticking the Lock Paranoia Frame option will now only lock the window in place.\par
-Removed the checkbox for coloring units by class, I can see no reason why anyone would NOT want the units colored by class and the checkbox just wastes space.\par
-Released the addon under the GPL.\par
-Various other changes and modifications.\par
\par
\b v1.12\b0  - Patch 3.0.2 update.\par
\i All previous versions of Paranoia may be broken an incompatible when the Wrath of the Lich King expansion ships!\i0\par
-Updated ToC number to 30000.\par
-Made the required modifications to the code for the addon to work with Wrath of the Lich King and patch 3.0.\par
-Updated the SpellList to include all level 71-80 spells for the nine original classes, and included all 1-80 spells for Death Knights. Spells are up to date as of 3.0.2 r8926.\par
-Added class coloring for Death Knights.\par
-Moved Alert Popup test button down about 20 pixels, it was on top of a slider.\par
\par
\b v1.12.1 (October 20, 2008)\b0  - Minor update for some new patch 3.0.3 changes. \par
-Replaced all instances of this: with self:.\par
-Fixed an issue with the Config frame not being shown that was a result of Blizzard renaming an InterfaceOptionsFrame function.\par
-Removed the defaultValue property from all of the sliders, it caused weird things to happen sometimes.\par
-Updated the Ace2 libraries included with the addon, apparently they were so old they were causing conflicts and the addon was not loading properly sometimes when mixed with other Ace2 addons.\par
\par
\b v1.13\b0  - Major update.\par
\i I am in need of localizations for the new strings that have been added in this version! If you'd like to help, open up one of the localization.lua files, look for the new strings (listed at the top of the file), translate them, and send me the edited file via lifetapt@gmail.com. Thanks a bunch!\i0\par
-Added a database browser. You can access the database browser by right-clicking the Paranoia enemy list or via /paranoia db. Current featureset is limited, only including sorting, searching by name, KoS flagging, and setting player notes. It also keeps tracks of kills and deaths for players, but it does not yet offer any other stat tracking beyond that. You may notice that when you open the browser for the first time there will already be data there, this is because Paranoia has been keeping a database since 1.11.\par
-Added basic KoS flagging system. You can now flag players through a multitude of ways: /para kos [playername], right clicking a name on the enemy list and selecting Add to KoS, and by opening the database browser, selecting a name, and clicking Toggle KoS. I was going to add an option to the target portrait right-click dropdown however I will not do that yet because there are apparently some problems with tainting and breaking stuff if addons add options to Blizzard menus. It's a Blizzard bug so there's nothing I can do until they fix it.\par
-Paranoia will warn you with a different sound and a big KoS! warning in the middle of your screen if it detects a KoS'd player by any means (combat log, mouseover, comm). The sound I'm going with is PvPWarningHorde, basically the Horde version of the regular warning sound. You cannot currently move the KoS popup or change it's display properties but that will be added to the Paranoia Appearence tab soon.\par
-Paranoia will now send warnings to SCT, Parrot, and MikScrollingBattleText, if you wish to do so. The options for these settings can be found in Paranoia General, they are all combined into one checkbox since I assume no one will have all three addons installed at once.\par
-Fixed an issue with the Lock Frame option.\par
-Tidied up localization a little by replacing some strings with equivalents in FrameXML's GlobalStrings.lua.\par
}
 